package com.kuaung;

import com.baomidou.mybatisplus.annotation.IdType;



import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.nio.file.Paths;
import java.util.Collections;

public class MabcCode {
    public static void main(String[] args) {
        // 创建FastAutoGenerator实例，配置数据库连接信息
        FastAutoGenerator.create("jdbc:mysql://42.193.105.220:3306/mybatis_plus?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8", "root", "iconroot")

                // 配置全局信息
                .globalConfig(builder -> {
                    builder
                            .author("麻炳昌") // 设置作者信息
                            .outputDir(Paths.get(System.getProperty("user.dir")) + "/src/main/java") // 设置输出目录
                            .commentDate("yyyy-MM-dd"); // 设置注释日期格式

                })

                // 配置包信息
                .packageConfig(builder -> {
                    builder
                            .parent("com.kuaung.mybatisplus") // 设置父包名
                            .entity("entity") // 设置实体类包名
                            .mapper("mapper") // 设置Mapper接口包名
                            .service("service") // 设置Service接口包名
                            .serviceImpl("service.impl") // 设置Service实现类包名
                            .xml("mapper.xml"); // 设置XML映射文件包名
                })

                // 配置策略信息
                .strategyConfig(builder -> {
                    builder
                            .entityBuilder() // 配置实体类生成策略
                            .enableLombok(); // 启用Lombok简化实体类

                })

                // 配置模板引擎
                .templateEngine(new FreemarkerTemplateEngine())

                // 执行代码生成
                .execute();
    }

//    public static void main(String[] args) {
//        String projectPath = System.getProperty("user.dir");
//        FastAutoGenerator.create("jdbc:mysql://42.193.105.220:3306/mybatis_plus?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8", "root", "iconroot")
//                .globalConfig(builder -> {
//                    builder.author("麻炳昌") // 设置作者
//                            //.enableSwagger() // 开启 swagger 模式
//                            .fileOverride() // 覆盖已生成文件
//                            .outputDir(projectPath+"/src/main/java"); // 指定输出目录
//                })
//                .packageConfig(builder -> {
//                    builder.parent("com") // 设置父包名
//                            .moduleName("finance") // 设置父包模块名
//                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml,projectPath+"/src/main/java"));     // 设置mapperXml生成路径
//                })
//                .strategyConfig(builder -> {
//                    builder.addInclude("t_asset", "t_department"
//                                    ,"t_finance"
//                                    ,"t_menu"
//                                    ,"t_permission"
//                                    ,"t_role"
//                                    ,"t_role_menu"
//                                    ,"t_role_permission"
//                                    ,"t_tender"
//                            ) // 设置需要生成的表名，多张表可以传递多个String类型的参数
//                            .addTablePrefix("t_","my_"); // 设置过滤表前缀
//                })
//                .templateEngine(new FreemarkerTemplateEngine())
//                // 使用Freemarker引擎模板，默认的是Velocity引擎模板
//                .execute();
//    }
}
